Ajax এর মাধ্যমে POST রিকোয়েস্ট ব্যবহার করে ডেটা পাঠানো হয় যখন ক্লায়েন্ট থেকে সার্ভারে ডেটা সাবমিট বা আপডেট করতে হয়। POST রিকোয়েস্ট সাধারণত ফর্ম ডেটা, JSON ডেটা, বা অন্য কোনো কাস্টম ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়। এটি GET রিকোয়েস্টের তুলনায় বেশি নিরাপদ, কারণ ডেটা URL এর পরিবর্তে রিকোয়েস্টের বডিতে পাঠানো হয়। নিচে POST রিকোয়েস্টের মাধ্যমে ডেটা পাঠানোর একটি পূর্ণাঙ্গ উদাহরণ এবং এর ব্যাখ্যা দেওয়া হলো:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>POST Request Example</title>
</head>
<body>
<h1>Send Data Using POST Request</h1>
<form id="data-form">
<input type="text" id="title" placeholder="Title" required />
<textarea id="body" placeholder="Body" required></textarea>
<button type="button" onclick="sendData()">Submit</button>
</form>
<div id="response-container">
<!-- সার্ভার রেসপন্স এখানে দেখানো হবে -->
</div>
<script src="app.js"></script>
</body>
</html>
বিস্তারিত ব্যাখ্যা:
<h1>
), একটি ফর্ম (<form>
), এবং একটি <div>
এলিমেন্ট রয়েছে।<input>
এবং <textarea>
) রয়েছে যেখানে ইউজার ডেটা প্রবেশ করতে পারে।onclick
ইভেন্ট হ্যান্ডলার ব্যবহার করা হয়েছে, যা sendData()
ফাংশন কল করবে এবং POST রিকোয়েস্ট পাঠাবে।response-container
নামে একটি <div>
এলিমেন্ট রয়েছে, যেখানে POST রিকোয়েস্টের রেসপন্স দেখানো হবে।function sendData() {
// ইনপুট ফিল্ড থেকে ডেটা সংগ্রহ করা
var title = document.getElementById("title").value;
var body = document.getElementById("body").value;
// XMLHttpRequest অবজেক্ট তৈরি করা
var xhr = new XMLHttpRequest();
// POST রিকোয়েস্ট ওপেন করা
xhr.open("POST", "https://jsonplaceholder.typicode.com/posts", true);
// কনটেন্ট টাইপ সেট করা (JSON ডেটা পাঠানোর জন্য)
xhr.setRequestHeader("Content-Type", "application/json");
// রেসপন্স হ্যান্ডলিং সেট করা
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // রিকোয়েস্ট সম্পূর্ণ হয়েছে কিনা তা চেক করা
if (xhr.status === 201) { // রিকোয়েস্ট সফল হয়েছে কিনা তা চেক করা (201 মানে রিসোর্স তৈরি হয়েছে)
var responseData = JSON.parse(xhr.responseText); // JSON রেসপন্স প্রসেস করা
document.getElementById("response-container").innerHTML = `
<h3>Response:</h3>
<p>ID: ${responseData.id}</p>
<p>Title: ${responseData.title}</p>
<p>Body: ${responseData.body}</p>
`;
} else {
// যদি এরর হয়, তাহলে এরর মেসেজ দেখানো
document.getElementById("response-container").innerHTML = "Error sending data!";
}
}
};
// JSON ডেটা তৈরি করা এবং রিকোয়েস্ট পাঠানো
var data = JSON.stringify({ title: title, body: body });
xhr.send(data);
}
বিস্তারিত ব্যাখ্যা:
১. ইনপুট ডেটা সংগ্রহ করা:
sendData()
ফাংশনে ইনপুট ফিল্ড থেকে ডেটা সংগ্রহ করা হয়েছে (title
এবং body
)।২. XMLHttpRequest অবজেক্ট তৈরি করা:
XMLHttpRequest
অবজেক্ট তৈরি করা হয়েছে, যা POST রিকোয়েস্ট পরিচালনা করবে।৩. রিকোয়েস্ট ওপেন করা:
xhr.open("POST", "https://jsonplaceholder.typicode.com/posts", true);
মেথড ব্যবহার করে একটি POST রিকোয়েস্ট সেটআপ করা হয়েছে।"POST"
মেথড ব্যবহার করা হয়েছে, কারণ আমরা সার্ভারে ডেটা পাঠাচ্ছি।"https://jsonplaceholder.typicode.com/posts"
URL যেখানে ডেটা পাঠানো হবে।true
মানে রিকোয়েস্টটি অ্যাসিনক্রোনাসভাবে চলবে।৪. রিকোয়েস্ট হেডার সেট করা:
xhr.setRequestHeader("Content-Type", "application/json");
মেথড ব্যবহার করে রিকোয়েস্ট হেডার সেট করা হয়েছে, যাতে সার্ভার জানে আমরা JSON ডেটা পাঠাচ্ছি।৫. রেসপন্স হ্যান্ডলিং:
xhr.onreadystatechange
ইভেন্ট হ্যান্ডলার ব্যবহার করে চেক করা হয়েছে যে রিকোয়েস্ট সম্পূর্ণ হয়েছে কিনা (xhr.readyState === 4
) এবং সফল হয়েছে কিনা (xhr.status === 201
)।201
স্ট্যাটাস কোড নির্দেশ করে যে রিকোয়েস্ট সফল এবং সার্ভারে নতুন রিসোর্স তৈরি হয়েছে।response-container
ডিভে) আপডেট করা হয়েছে।৬. রিকোয়েস্ট পাঠানো:
xhr.send(data)
মেথডের মাধ্যমে রিকোয়েস্টটি সার্ভারে পাঠানো হয়েছে।এই উদাহরণে, আমরা একটি ডেমো API (https://jsonplaceholder.typicode.com/posts
) ব্যবহার করেছি, যা POST রিকোয়েস্টে নতুন রিসোর্স তৈরি করে। এটি সাধারণত নিচের মতো JSON রেসপন্স প্রদান করে:
{
"id": 101,
"title": "Sample Title",
"body": "This is a sample body text."
}
sendData()
ফাংশন কল হয়।Content-Type
হেডার সেট করা হয়েছে।readyState
এবং status
চেক করে POST রিকোয়েস্ট সফল হলে ডেটা প্রসেস এবং DOM আপডেট করা হয়।এই ধাপগুলো অনুসরণ করে আপনি সহজেই Ajax POST রিকোয়েস্ট ব্যবহার করে সার্ভারে ডেটা পাঠাতে পারেন এবং আপনার ওয়েব পেজে ডায়নামিক কন্টেন্ট আপডেট করতে পারেন।
Read more